/*
 * 描述： <描述>
 * 修改人： rain
 * 修改时间： 2016年5月22日
 * 项目： rainhy-webcore
 */
package com.rainhy.incrementer.context;

/**
 * 自增长值生产者
 * 
 * @author rain
 * @version [版本号, 2016年5月22日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface IncrementerProducer {
    
    /** 是否支持 */
    public boolean isSupport();
    
    /**
     * 
     * 获取数据源类型
     *
     * @return String [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see com.alibaba.druid.util.JdbcConstants
     * @version [版本号, 2016年5月22日]
     * @author rain
     */
    public String getDataSourceType();
    
    /**
     * 
     * 获取下一个值
     *
     * @param incrementerType 自增长类型
     * @param cacheSize 缓存长度
     * @param startValue 初始值
     * 
     * @return long [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     * @version [版本号, 2016年5月22日]
     * @author rain
     */
    public long getNextValue(String incrementerType, int cacheSize, int startValue);
}
